package com.example.demo.practice.tool;

import android.os.Handler;
import android.util.Log;

import com.example.demo.practice.httpserver.HttpServer;

import org.json.JSONArray;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

/**
 * 输入服务名称；返回请求数据JsonObject格式
 */

public class ServerHttp {
    private HttpServer http = new HttpServer();
    private String SERVERURL=http.getHttp();
    private Handler handler;
    private JSONArray jsonArray;
    public ServerHttp(Handler handler) {
        this.handler=handler;
    }
    public void setUrl(final String url){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    OkHttpClient client = new OkHttpClient();//创建OkHttpClient对象
                    Request request = new Request.Builder()
                            .url(SERVERURL+url)//请求接口。如果需要传参拼接到接口后面。
                            .build();//创建Request 对象

                    Response response = client.newCall(request).execute();//得到Response 对象
                    if (response.isSuccessful()) {
                        Log.e("kwwl", "response.code()==" + response.code());
                        Log.e("kwwl", "response.message()==" + response.message());
                        //response.body().string()只可以调用一次
                        //此时的代码执行在子线程，修改UI的操作请使用handler跳转到UI线程。
                        jsonArray = new JSONArray(response.body().string());
                        handler.sendEmptyMessage(0);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }

    /**
     * 获取查询后的数据
     * @return
     */
    public JSONArray getData(){
        return jsonArray;
    }

    /**
     * 清除数据
     */
    public void clear() {
        jsonArray=null;
        handler=null;
    }
}
